#ifndef __EKF_PMEM_H__
#define __EKF_PMEM_H__

/* the physical page allocator interface */
/* may implement the buddy system */
int  ekf_pmem_page_alloc(int num, physaddr_t *addr, int dma, int status);
void ekf_pmem_page_free(physaddr_t addr);
void ekf_pmem_page_add_ref(physaddr_t addr, int delta);
void ekf_pmem_page_inc_ref(physaddr_t addr);
void ekf_pmem_page_dec_ref(physaddr_t addr);
int  ekf_pmem_page_status(physaddr_t);
int  ekf_pmem_page_fsm(physaddr_t addr, int *tf_vec, int size);

#define EKF_PPAGE_MANAGED      0
#define EKF_PPAGE_CORE         1

// UNUSED
#define EKF_PPAGE_FSM_COUNT 7

uint32_t        mmap_count;
struct memmap_s mmap[MEMMAP_MAXCOUNT];

#endif
